﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace OBL1_DiseñoDeAplicaciones.ObjetosDeNegocio
{
    public class Tarea:Subdivision
    {
        private DateTime fechaInicio;
        private Double costo; 

        #region Properties
        
        public DateTime FechaInicio
        {
            set { fechaInicio = value; }
        }

        public Double Costo
        {
            get { return costo; }
            set { costo = value; }
        }

        #endregion

        //Constructor por defecto
        public Tarea(string descripcion, DateTime fechaInicio, Double costo, Proyecto parent = null) : base(descripcion, parent) {
            this.fechaInicio = fechaInicio;
            this.costo = costo;
        }

        //Constructor por copia
        public Tarea(int id, string descripcion, DateTime fechaInicio, Double costo, Proyecto parent = null) : base(id, descripcion, parent) {
            this.fechaInicio = fechaInicio;
            this.costo = costo;
        }

        public override Double ObtenerCostoTotal(int iva) {
            return this.Parent.CalcularCostoParaCliente(this.costo,iva);
        }

        public override DateTime ObtenerFechaInicio() {
            return fechaInicio;
        }

        public override Subdivision Clonar(Proyecto nuevoPadre)
        {
            return new Tarea(this.Id, this.Descripcion, this.fechaInicio, this.costo, nuevoPadre);
        }

        public override void Modificarme(string pDescripcion, double pCosto, DateTime pFechaInicio)
        {
            this.Descripcion = pDescripcion;
            this.Costo = pCosto;
            this.FechaInicio = pFechaInicio;

        }

        public override string ToString()
        {
            string retorno = "Descripcion: " + this.Descripcion + "\n";
            retorno += "Fecha Inicio: " + this.ObtenerFechaInicio().ToShortDateString() + "\n";
            return retorno;
        }
    }
}
